package com.iwhalecloud.uncc.dao;

import com.iwhalecloud.uncc.model.RedisConfig;

import java.util.List;
import java.util.Map;

public interface RedisClusterDao {

    void init(RedisConfig redisConfig);

    void set(String key, Object value);

    void setEx(String key, Object value);

    void setEx(String key, Object value, int seconds);

    Object get(String key);

    Boolean setNX(String key, Object value);

    Map<String, String> getHashByKey(String key);

    Boolean hSet(String key, String field, String value);

    String hGet(String key, String field);

    Long hdel(String key, String field);

    Long del(String key);

    void lPush(String key, String value);

    String rPop(String key);

    void rPush(String key, String value);

    String lPop(String key);

    List<String> lRange(String key, long start, long end);

    Long lLen(String key);

    Long sRem(String key, String value);

    Long incr(String key);

    boolean exists(String key);

    Number getNumber(String key);

	void setExHasExpire(String key, Object value, long expireTime);
    void lock(String lock);
    void unLock(String lock);

    boolean setNxAndExpire(String key, Object value, long expireTime);
}